Politicians often use optimistic promises to win support, but their past actions reveal their true priorities. Instead of trusting words alone, look at their record — actions speak louder than words.
Casualties of War
Show Code
# List of African countries to excludeafrican_countries = ["Algeria", "Angola", "Benin", "Botswana", "Burkina Faso", "Burundi", "Cameroon", "Cape Verde","Central African Republic", "Chad", "Comoros", "Congo", "Djibouti", "Egypt", "Equatorial Guinea","Eritrea", "Eswatini", "Ethiopia", "Gabon", "Gambia", "Ghana", "Guinea", "Guinea-Bissau","Ivory Coast", "Kenya", "Lesotho", "Liberia", "Libya", "Madagascar", "Malawi", "Mali","Mauritania", "Mauritius", "Morocco", "Mozambique", "Namibia", "Niger", "Nigeria", "Rwanda","Sao Tome and Principe", "Senegal", "Seychelles", "Sierra Leone", "Somalia", "South Africa","South Sudan", "Sudan", "Tanzania", "Togo", "Tunisia", "Uganda", "Zambia", "Zimbabwe", "Democratic Republic of the Congo", "Côte d'Ivoire", "Democratic Republic of Congo"]# Load the CSV file and rename columnsdf = pl.read_csv("countries-in-conflict-data.csv").rename({"Entity": "country","Code": "country_code","Year": "year","Deaths in ongoing conflicts in a country (best estimate) - Conflict type: all": "total_deaths"}).select(["year", "country", "total_deaths"])# Ensure data types for consistencydf = df.with_columns([ pl.col("year").cast(pl.Int64), pl.col("total_deaths").cast(pl.Int64)])# Load the 2024 data and rename columnsdf_2024 = pl.read_csv("acled_aggregated_20024.csv").rename({"Country": "country","Fatalities": "total_deaths"})# Add a 'year' column with the value 2024 and ensure consistency in data typesdf_2024 = df_2024.with_columns([ pl.lit(2024).alias("year").cast(pl.Int64), pl.col("total_deaths").cast(pl.Int64)]).select(["year", "country", "total_deaths"])# Append the 2024 data to the main DataFramedf_combined = df.vstack(df_2024)# Remove any trailing or leading whitespace in the 'country' columndf_combined = df_combined.with_columns( pl.col("country").str.replace(r"^\s+|\s+$", "") # This regex removes leading and trailing whitespace)# Filter the DataFrame for years between 2001 and 2024, excluding African countriesdf_filtered = df_combined.filter( (pl.col("year") >=2001) & (pl.col("year") <=2024) & (~pl.col("country").is_in(african_countries)))# Sum up deaths per year across all non-African countriesdeaths_per_year = ( df_filtered.group_by("year") .agg(pl.col("total_deaths").sum().alias("Total Deaths")) .sort("year"))# Set up a nice stylesns.set_theme(style="whitegrid")# Plottingplt.figure(figsize=(11, 7))plt.plot(deaths_per_year["year"], deaths_per_year["Total Deaths"], marker='o', linestyle='-', color='#8B0000', linewidth=2) # Dark red color# Adding shaded regions for each presidencybush = plt.axvspan(2001, 2008, color='red', alpha=.5, label="Bush/Cheney")obama = plt.axvspan(2008, 2016, color='blue', alpha=.5, label="Obama/Biden")trump = plt.axvspan(2016, 2020, color='lightcoral', alpha=0.3, label="Trump/Pence")biden = plt.axvspan(2020, 2024, color='lightblue', alpha=0.3, label="Biden/Harris")# Adding data labels above the pointsfor x, y inzip(deaths_per_year["year"], deaths_per_year["Total Deaths"]): plt.text(x, y +max(deaths_per_year["Total Deaths"]) *0.02, f"{y:,}", ha="center", va="bottom", fontsize=11, weight='bold')# Titles and labelsplt.title("Total Deaths in Armed Conflicts (2001 - October 2024, Excluding Africa)", fontsize=16, weight='bold')plt.xlabel("Year", fontsize=12)plt.ylabel("Total Deaths", fontsize=12)# Format y-axis with commasplt.gca().yaxis.set_major_formatter(FuncFormatter(lambda x, _: f"{int(x):,}"))# Improving the x-axis ticksplt.xticks(deaths_per_year["year"], rotation=45)# Adding a subtle gridplt.grid(True, which='both', linestyle='--', linewidth=0.5, alpha=0.7)# First legend for presidential terms (upper left), excluding the election linesfirst_legend = plt.legend(handles=[bush, obama, trump, biden], loc="upper left", fontsize=10, title="Presidential Terms")plt.gca().add_artist(first_legend)# Show plotplt.tight_layout()plt.show()
Which is the party of the profits of war?
Major Armed Confilcts under Bush/Cheney
War in Afghanistan (2001) - Initiated in response to the 9/11 attacks to dismantle al-Qaeda and remove the Taliban.
Iraq War (2003) - Launched over alleged weapons of mass destruction, resulting in the ousting of Saddam Hussein.
TOTAL: 2
Major Armed Confilcts under Obama/Biden
Libya Intervention (2011) - U.S. and NATO intervened via airstrikes during the Libyan Civil War, leading to Gaddafi’s ouster and subsequent instability.
Anti-ISIS Campaign (2014) - Obama launched airstrikes in Iraq and Syria to counter ISIS, leading to a multi-national coalition against the group.
Syria Civil War (Indirect) - While the U.S. didn’t start the war, Obama’s administration provided significant support to anti-Assad rebels and launched strikes against ISIS in Syria.
Ukraine (2014) - Following Russia’s annexation of Crimea, the U.S. began providing military aid to Ukraine to support its defense against Russian-backed separatists.
TOTAL: 4
Major Armed Confilcts under Trump/Pence
Continued Anti-ISIS Operations - Trump intensified operations in Iraq and Syria, focusing on ISIS.
TOTAL: 1
Major Armed Confilcts under Biden/Harris
Afghanistan Withdrawal (2021) - Led to the Taliban regaining control, with subsequent violence affecting both Afghans and U.S. interests.
Ukraine Conflict (2022) - Biden’s administration provided extensive military and financial support to Ukraine in response to Russia’s invasion, helping shape the conflict’s course.
Israel-Gaza Conflict (2023) - Amid escalated violence, the Biden administration provided support to Israel, including emergency aid packages and diplomatic backing.
TOTAL: 3
🏆 Winner: Biden — Total: 7
Biden has spent nearly 12 years in the White House as either Vice President or President, overseeing more major armed conflicts than any other U.S. leader in the past 24 years.